In computer systems, some application software tools enable computer users to analyze or process the data acquired from data acquisition devices, such as cameras and scanners. The application software tools may also enable the computer users to send the analyzed or processed data to output devices coupled to the computer systems, so that the computer users can obtain the analyzed or processed data. MATLAB, from The MathWorks, Inc. of Natick, Mass., is one of the application software tools that provides an integrated mathematical computing and visualization environment for technical computing. The computer systems, which run the application software tools, such as MATLAB, need data transfer systems for transferring the data acquired from the data acquisition devices to the application software tools that analyze and process the data. The computer systems may also need data transfer systems that transfer the analyzed or processed data to the output devices or other application software tools. Image Acquisition Toolbox, from The MathWorks, Inc. of Natick, Mass., provides a set of software tools for acquiring data from data acquisition devices and transferring the data to application software tools or output devices.
In conventional data transfer systems, extraneous copies of data are made to transfer the data to each of the application software tools or output devices. The extraneous copies of the data make it impractical, and in some cases impossible, for users to allocate sufficient memory space in computer systems to contain all of the copies of the data. Furthermore, the conventional data transfer systems store the data that is no longer used by the application software tools or output devices in the memory of the computer systems, which results in the reduction of the memory space available in the computer systems. Therefore, there is a need for data transfer systems in which the data acquired from data acquisition devices is transferred to each of the application software tools or output devices without making extraneous copies of the data. That is, the data acquired from the data acquisition devices needs to be shared by the application software tools or output devices. There is also a need for data transfer systems in which the data that is no longer used by the application software tools or output devices is removed from the memory in the computer systems.